package com.atguigu.jedis;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

/**
 * Created by Smexy on 2022/11/7
 *
 */
public class Demo4
{
    public static void main(String[] args) {

        //自定义连接池的配置
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        jedisPoolConfig.setMaxTotal(20);  //池中的容量最大为20
        jedisPoolConfig.setMaxIdle(10);   //池中最大空闲的连接数
        jedisPoolConfig.setTestOnBorrow(true); //借连接的时候，先测试下连接能不能用，能用再给线程
        jedisPoolConfig.setTestOnReturn(true); // 线程还连接的时候，先测试下连接能不能用，能用再放入池中
        jedisPoolConfig.setBlockWhenExhausted(true); //池中的连接都被借走完了，再有线程来借连接，让它等一等还是返回一个异常
        jedisPoolConfig.setMaxWaitMillis(60000);  //阻塞的连接最多等多久，就返回错误


        JedisPool jedisPool = new JedisPool(jedisPoolConfig,"hadoop102", 6379);

        //从池中借一个连接
        Jedis jedis = jedisPool.getResource();

        System.out.println(jedis.ping());

        //用完后把连接还入池中
        //如果Jedis对象是new的，close就是关闭。如果是借的，close就是还入池中。
        jedis.close();

    }
}
